package com.example.service;

import cn.hutool.json.JSONObject;
import com.example.model.EncryptEnvelope;

import java.util.Map;

/**
 * @ClassName NationCaService
 * @Description TODO
 * @Author kun
 * @Date 2024-10-22 10:55
 * @Version 1.0
 */
public interface NationCaService {

    /**
     * 获取平台配置信息
     * @param
     * @return
     */
    String getNaConfig();

    /**
     * 获取登录二维码
     * @return
     */
    String getLoginQrCode();

    /**
     * 查询登录二维码扫描状态
     * @param tid
     * @return
     */
    String queryScannedStatus(String tid);

    /**
     * 获取用户授权信息
     * @param tid
     * @return
     */
    String getUserInfo(String tid);

    /**
     * 获取加密二维码
     * @return
     */
    String getEnQrCode();

    /**
     * 获取加密二维码扫描状态
     * @param tid
     * @return
     */
    String queryEnScannedStatus(String tid);

    /**
     * 加密消息
     * @param tid
     * @param msg
     * @return
     */

    String encryptMsg(String tid,String msg);

    /**
     * 获取解密二维码
     * @return
     */
    String getDeQrCode(String decyptUserType,String threeInOneCode,String idCardHash);


    /**
     * 获取解密二维码扫描状态
     * @param tid
     * @return
     */
    String queryDeScannedStatus(String tid);

    /**
     * 获取解密用户信息
     * @param tid
     * @return
     */
    String getDecryptUserInfo(String tid);

    /**
     * 上传加密信封
     * @param encryptEnvelope
     * @return
     */
    String uploadEncryptEnvelope(EncryptEnvelope encryptEnvelope);

    /**
     * 获取解密消息
     * @param tid
     * @return
     */
    String getDecryptMsg(String tid);

    /**
     * 获取甘肃省主体共享平台登录信息
     * @param threeInOneCode
     * @return
     */
    JSONObject gsBodyLogin(String threeInOneCode);

    /**
     * 获取签名二维码
     * @return
     */
    String getSignQrCode(String msg);

    /**
     * 获取签名二维码扫描状态
     * @param tid
     * @return
     */
    String querySignScannedStatus(String tid);

    /**
     * 获取签名结果
     * @param tid
     * @return
     */
    String getSignResult(String tid);

    /**
     * 验证签名
     * @param msg
     * @param sign
     * @param alogrithm
     * @return
     */
    String verifySign(String msg,String sign,String alogrithm);

    /**
     * 获取pdf签名回调信息
     * @param platFormCode
     * @param systemCode
     * @param fileKey
     * @return
     */
    String getSignPdfCallback(String platFormCode,String systemCode,String fileKey);

    /**
     * 解压加密文件
     * @param fileKey
     * @return
     */
    Map decryptUnzipFile(String fileKey);

    String decryptFile(String fileKey,String decryptKey);

    String uploadFileUrl(String fileUrl,String extName);

}
